1. Field of the Invention
The present invention relates to the testing of microprocessors. It more specifically relates to a method and device of digital data transmission between a test circuit integrated in a microprocessor chip and an analysis tool.
2. Discussion of the Related Art
FIG. 1 schematically shows an integrated circuit 10 comprising a microprocessor (μP) 12, an internal memory (MEM) 14, and input/output terminals (I/O) 16. Microprocessor 12 is intended to execute a program or a software stored in memory 14. Under control of the program, microprocessor 12 can process data provided by input/output terminals 16 or stored in memory 14 and provide data through input/output terminals 16.
To check the proper operation of the microprocessor, a supervision circuit 18 (TEST) is generally integrated on integrated circuit 10. Supervision circuit 18 is capable of reading specific data provided by microprocessor 12 on execution of a program, and of possibly processing the read data. Supervision terminals 22 connect supervision circuit 18 to an analysis tool 24. Analysis tool 24 may process the received signals, for example, according to commands provided by a user, and ensure a detailed analysis of the operation of microprocessor 12. In particular, analysis tool 24 may determine the program instruction sequence really executed by microprocessor 12.
The number of supervision terminals 22 for a conventional supervision circuit 18 may be on the same order of magnitude as the number of input/output terminals 16 of microprocessor 12, for example, from 200 to 400. Test terminals 22 as well as the connections of supervision circuit 18 take up a significant silicon surface area, which causes an unwanted increase in the circuit cost. For this reason, a first version of integrated circuit 10 comprising supervision circuit 18 and supervision terminals 22 is produced in small quantities to check out microprocessor 12. After this checking out, a version of integrated circuit 10 rid of supervision circuit 18 and of supervision terminals 22 is sold. This requires the forming of two versions of the integrated circuit, which requires a significant amount of work and is relatively expensive. Further, the final chip is not identical to the tested chip.
To overcome the above-mentioned disadvantages, it is desired to form a supervision circuit 18 which takes up a reduced surface area and only requires a reduced number of test terminals 22, which decreases the selfcost of supervision circuit 18. Supervision circuit 18 can then be left on the finally sold integrated circuit 10.
It is thus desired to decrease the number of signals provided by supervision circuit 18. For this purpose, certain logic operations are directly performed at the level of supervision circuit 18 on the data measured at the level of microprocessor 12 to only transmit messages having an important information content.
Thus, standard IEEE-ISTO-5001, in preparation, provides in its 1999 version, accessible, for example, on website www.ieee-isto.org/Nexus5001, a specific message exchange protocol between a supervision circuit 18 and an analysis tool 24 for a supervision circuit 18 requiring but a reduced number of test terminals 22.
Standard IEEE-ISTO-5001 provides several standardized messages, called public messages, the features of which are set once and for all and cannot be modified by the users of chip 10. Among the public messages, program tracing messages and data messages are especially distinguished. Program tracing messages provide information relative to the order of execution of the program by microprocessor 12. It may, for example, be a message indicating that a jump has occurred in the program executed by microprocessor 12. Data messages gather the other public messages that can be transmitted by supervision circuit 18 and especially provide information relative to the data processed by microprocessor 12. It may, for example, be a message indicating that a data read or write operation in an area of memory 14 has been performed by microprocessor 12.
Each public message is formed of a succession of bits distributed in several juxtaposed groups comprising a header group and secondary groups, each group coding specific data. The header group corresponds to a message type identifier. It is formed of a fixed number of bits identical for all public messages. The number of secondary groups of a given public message and the size of each of them are set by the value of the message identifier. As an example, in the case of a jump message, the secondary groups may correspond to data representative of the address of the jump destination instruction and to the number of instructions executed by microprocessor 12 since the last transmission of a jump message. In the case of a message indicating a data read or write operation, the secondary groups may correspond to the address of a register of memory 14 where the data are written or read and to the data value.
Based on the public messages, in particular, based on the program tracing messages, analysis tool 24 restores the instruction sequence executed by microprocessor 12. The restored instruction sequence can then be compared with an instruction sequence theoretically executed by microprocessor 12 to determine malfunctions of microprocessor 12.
Standard IEEE-ISTO-5001 also provides the possibility for the users to define specific messages that can be transmitted by supervision circuit 18 in addition to the public messages. A specific message is intended to be used when none of the public messages provided by the standard enables performing a function desired by the user. A specific message comprises, like a public message, a first group of header bits corresponding to an identifier of the specific message. The arrangement of the other bits of the specific message follows no particular rule and may considerably vary from one user to another. Further, analysis tool 24 connected to supervision circuit 18 must comprise processing means adapted to the processing of the specific messages.
In practice, each user wants supervision circuit 18 to transmit specific information which especially depend on the architecture which has been defined for microprocessor 12. The user then tends to privilege the use of specific messages over public messages to exactly transmit the wanted information. This decreases the advantage of standard IEEE-ISTO-5001 since, in practice, most of the messages transmitted by supervision circuit 18 are not public messages. In this case, it is very difficult to provide analysis tools 24 that can be used in interchangeable manner by supervision circuits 18 designed by different users and that implement different specific messages.